package com.neuedu.corejava.ch13;

import java.util.Random;

/*
 * 线程开发步骤1：
 * 1、编写一个类，继承java.lang.Thread类型
 * 2、重写run方法，在run方法中编写程序的功能代码
 * 3、执行时：实例化线程对象，并调用start方法启动线 程
 * 
 */
public class ThreadDemo extends Thread {
	private int count =  0;

	@Override
	public void run() {
		while(count<=10) {
			
			try {
				//线程休眠时间单位是毫秒
				Thread.sleep(new Random().nextInt(2000));
				System.out.println(getId() + ":" + count++);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
			System.out.println("主线程执行完毕");
		}
	}
	
	public static void main(String[] args) {
		//1、新建线程
		ThreadDemo demo  = new ThreadDemo();
		ThreadDemo demo2 = new ThreadDemo();
		ThreadDemo demo3 = new ThreadDemo();
		ThreadDemo demo4 = new ThreadDemo();
		
		//线程的run方法可以用普通方法调用形式调用
		//demo.run(); 
		//demo2.run(); 
		//demo3.run(); 
		//demo4.run(); 
		//2、启动线程会调用start方法，线程启动后会进入线程池中等待执行，
		//3、线程执行时是执行run方法
		//4、线程等待（线程终端）
		//5、run方法执行完毕，则线程执行完毕
		demo.start(); 
		demo2.start(); 
		demo3.start(); 
		demo4.start(); 
		System.out.println("主线程执行完毕");
		
	}

	
}
